<html>
<head>
<!--
/*
 * ====================================================================
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */
-->
</head>
<body>
The API for client-side HTTP communication.
<p/>
The usual execution flow can be demonstrated by the
code snippet below:

<PRE>
HttpClient httpclient = new DefaultHttpClient();

// Prepare a request object
HttpGet httpget = new HttpGet("http://www.apache.org/");

// Execute the request
HttpResponse response = httpclient.execute(httpget);

// Examine the response status
System.out.println(response.getStatusLine());

// Get hold of the response entity
HttpEntity entity = response.getEntity();

// If the response does not enclose an entity, there is no need
// to worry about connection release
if (entity != null) {
    InputStream instream = entity.getContent();
    try {

        BufferedReader reader = new BufferedReader(
                new InputStreamReader(instream));
        // do something useful with the response
        System.out.println(reader.readLine());

    } catch (IOException ex) {

        // In case of an IOException the connection will be released
        // back to the connection manager automatically
        throw ex;

    } catch (RuntimeException ex) {

        // In case of an unexpected exception you may want to abort
        // the HTTP request in order to shut down the underlying
        // connection and release it back to the connection manager.
        httpget.abort();
        throw ex;

    } finally {

        // Closing the input stream will trigger connection release
        instream.close();

    }
}

</PRE>

</body>
</html>
